package com.NeuglsWorkStudio.Colors
{
	/**
	 * 颜色相关的一套解决算法
	 * @author Neugls 2011.6.22
	 * */
	public class ColorUtility
	{
		public function ColorUtility()
		{
		}
		
		/**
		 * 该函数用于从一个给定颜色中产生一个颜色。考虑这样的一种情形，当你为一个程序界面
		 * 从外部指定一个颜色的时候，你希望对外只提供一个接口颜色，而通过这个颜色，你能为
		 * 你的其他的UI界面提供颜色，达到比较漂亮的效果。 **/
		public static function GetColorFromBaseColor(Color:int):int{
			var hsl:HSL=HSL.RGB2HSL(Color);
			if(hsl.Luminance>0.7){
				hsl.Luminance=0;
			}else{
				hsl.Luminance=0.9;
			}
			return hsl.toRGB().Hex;
		}
		
		public static function GetBorderColorFromBaseColor(Color:int):int{
			var hsl:HSL=HSL.RGB2HSL(Color);
			/*if(hsl.Luminance>0.7){
				hsl.Luminance-=0.2;
			}else{
				hsl.Luminance+=0.2;
			}*/
			var NHSL:HSL;
			if(hsl.Luminance>0.7){
				NHSL=HSL.RGB2HSL(0x000000);
				//NHSL.Luminance=hsl.Saturation;
				return NHSL.toRGB().Hex;
			}else{
				NHSL=HSL.RGB2HSL(0xFFFFFF);
				//NHSL.Luminance=hsl.Luminance;
				return NHSL.toRGB().Hex;
			}
			return hsl.toRGB().Hex;
		}
		
		public static function GetBackColorFromBaseColor(Color:int):int{
			var hsl:HSL=HSL.RGB2HSL(Color);
			if(hsl.Luminance>0.7){
				hsl.Luminance-=0.6;
			}else{
				hsl.Luminance+=hsl.Luminance/2;
			}
			//hsl.Saturation-=0.2;
			return hsl.toRGB().Hex;
		}
	}
}